package com.heima.crm.controller;


import com.heima.crm.common.result.Result;
import com.heima.crm.pojos.dtos.TbActivityDto;
import com.heima.crm.pojos.entity.TbActivity;
import com.heima.crm.service.ITbActivityService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

/**
 * <p>
 * 活动管理表 前端控制器
 * </p>
 *
 * @author MonsterSong
 * @since 2023-07-15
 */
@RestController
@RequestMapping("/api/v1/activity")
@Slf4j
public class TbActivityController {
    @Autowired
    private ITbActivityService iTbActivityService;

    /**
     * 活动管理分页查询
     *
     * @param dto
     * @return
     */
    @GetMapping("/list")
    public Result list(TbActivityDto dto) {
        log.info("活动管理分页查询。。。");
        return iTbActivityService.findPage(dto);
    }

    /**
     * 新增活动
     *
     * @param tbActivity
     * @return
     */
    @PostMapping("/add")
    public Result add(@RequestBody TbActivity tbActivity) {
        log.info("添加活动。。。");
        return iTbActivityService.addTbActivity(tbActivity);
    }

    /**
     * 数据回显==>修改数据
     *
     * @param id
     * @return
     */
    @GetMapping("/echo/{id}")
    public Result echo(@PathVariable Long id) {
        log.info("活动数据回显。。。");
        return iTbActivityService.findById(id);
    }

    /**
     * 修改活动数据
     *
     * @param tbActivity
     * @return
     */
    @PutMapping("/edit")
    public Result edit(@RequestBody TbActivity tbActivity) {
        log.info("编辑活动。。。");
        return iTbActivityService.updateTbActivity(tbActivity);
    }

    /**
     * 添加合同时，根据渠道来源查询活动信息
     *
     * @param channel
     * @return
     */
    @GetMapping("/{channel}")
    public Result channel(@PathVariable Long channel) {
        log.info("添加合同时，根据渠道来源查询活动信息。。。{}", channel);
        return iTbActivityService.findChannelById(channel);
    }

    /**
     * 前端新增的删除功能
     *
     * @param id
     * @return
     */
    @DeleteMapping("/del/{id}")
    public Result del(@PathVariable Long id) {
        log.info("活动的删除。。。");
        return iTbActivityService.delTbActivityById(id);
    }
}
